/**
 * @项目名称: lession01
 * @文件名称: Datatype_Key.java
 * @Date: 2016年9月21日
 * @Copyright: 2016 www.yunhe.cn Inc. All rights reserved.
 * 注意：本内容仅限于云和数据公司内部传阅，禁止外泄以及用于其他的商业目的
*/
package com.thinkgem.redis;

import java.util.Date;
import org.apache.log4j.Logger;
import org.junit.Test;
import redis.clients.jedis.Jedis;

/**
 * 
 * JEDIS常用的对键KEY的操作方法
 * 
 * @author ZSL
 *
 */
public class Datatype_Key {

	/**
	 * 日志工具
	 */
	Logger logger = Logger.getLogger(Datatype_Key.class);
	
	/**
	 * 测试操作
	 * 
	 * 以下是多数相对常用的KEY操作
	 * 
	 * 其他未涉及到的自己可以扩展查询命令练习下
	 * 
	 * 工作生产环境中根据具体业务，需要用到了再去查资料调用某个命令方法即可。
	 * 
	 */
	@Test
	public void operator(){
		
		Jedis client = new Jedis("127.0.0.1",6379);
		
		//TODO:是否存在某个KEY
		client.exists("user:1001");
		//TODO:删除某个KEY
		client.del("user:1001");
		//TODO:设置KEY的过期时间(秒),是相对时间
		client.expire("user:1001", 60);
		//TODO:设置KEY的过期时间(秒),是绝对时间(年月日时分秒)
		client.expireAt("user:1001", new Date().getTime());
		//TODO:查询KEY还有多长时间过期
		client.ttl("user:1001");
		//TODO:如果Key存在过期时间，该命令会将其过期时间消除，使该Key不再有超时，而是可以持久化存储。
		client.persist("user:1001");
		//TODO:模糊匹配查找对应的KEY列表
		client.keys("*1001*");
		//TODO:获取判断KEY对应的类型(是字符串还是HASH或SET等)
		client.type("user:1001");
		//TODO:随机返回一个KEY
		client.randomKey();

		
		client.close();
	}

}
